package impl

import (
	"context"
	"database/sql"
	"mygoedu/day14/demo/api/pkg/host"
)

func (s *service) save(ctx context.Context, h *host.Host) error {
	var (
		stmt *sql.Stmt
		err  error
	)
	tx, err := s.db.BeginTx(ctx, nil)
	if err != nil {
		return err
	}

	defer func() {
		if err != nil {
			tx.Rollback()
			return
		}
	}()

	// 避免sql注入,使用prepare
	stmt, err = tx.Prepare(insertResourceSQL)
	if err != nil {
		return err
	}
	defer stmt.Close()

	_, err = stmt.Exec(
		h.Id, h.Vendor, h.Region, h.Zone, h.CreateAt, h.ExpireAt, h.Category, h.Type, h.InstanceId, h.Name, h.Description, h.Status,
		h.UpdateAt, h.SyncAt, h.SyncAccount, h.PublicIP, h.PrivateIP, h.PayType, h.DescribeHash, h.ResourceHash,
	)
	if err != nil {
		return err
	}
}
